package com.zx.crowdfunding.service.api;

import java.util.List;
import com.github.pagehelper.PageInfo;
import com.zx.crowdfunding.entity.Role;

/**
 * 角色 - Service接口
 * @author 郑雪
 * @date 2021-12-09
 */
public interface RoleService {

	/**
	 * 查询分页信息
	 * @param keyword 查询的关键字
	 * @param pageNum 分页页码
	 * @param pageSize 分页大小
	 * @return PageInfo对象，封装了详细的分页信息
	 */
	PageInfo<Role> getPageInfo(String keyword, Integer pageNum, Integer pageSize);

	/**
	 * 添加角色
	 * @param role 角色对象
	 */
	void saveRole(Role role);
	
	/**
	 * 删除角色
	 * @param idList 角色id的List集合
	 */
	void removeRole(List<Integer> idList);

	/**
	 * 根据id查询角色
	 * @param id 角色id
	 * @return Role对象
	 */
	Role getRoleById(Integer id);

	/**
	 * 修改角色
	 * @param role 角色对象
	 */
	void editRole(Role role);

	/**
	 * 查询已分配的角色
	 * @param adminId 管理员id
	 * @return Role对象的List集合
	 */
	List<Role> getAssignedRole(Integer adminId);

	/**
	 * 查询未分配的角色
	 * @param adminId 管理员id
	 * @return Role对象的List集合
	 */
	List<Role> getUnAssignedRole(Integer adminId);

	/**
	 * 添加角色与权限的关联关系
	 * @param roleId 角色id
	 * @param authIdList 权限id的List集合
	 */
	void saveRoleAuthRelationship(Integer roleId, List<Integer> authIdList);
}
